"""
API module for backend toolkit.
"""

from .base import (
    BaseAPI,
    CRUDBaseAPI,
    AuthenticatedAPI,
    AdminAPI,
    PublicAPI,
    HealthCheckAPI
)
from .middleware import (
    APIMiddleware,
    RateLimitMiddleware,
    CORSMiddleware,
    SecurityHeadersMiddleware,
    CompressionMiddleware,
    RequestSizeLimitMiddleware
)
from .exceptions import (
    APIException,
    ValidationError,
    NotFoundError,
    UnauthorizedError,
    ForbiddenError,
    ConflictError,
    RateLimitError,
    InternalServerError,
    ServiceUnavailableError
)
from .responses import (
    APIResponse,
    SuccessResponse,
    ErrorResponse,
    PaginatedResponse,
    ListResponse,
    CreatedResponse,
    UpdatedResponse,
    DeletedResponse,
    HealthCheckResponse,
    MetricsResponse,
    ValidationErrorDetail,
    ValidationErrorResponse
)

__all__ = [
    # Base classes
    "BaseAPI",
    "CRUDBaseAPI",
    "AuthenticatedAPI",
    "AdminAPI",
    "PublicAPI",
    "HealthCheckAPI",
    
    # Middleware
    "APIMiddleware",
    "RateLimitMiddleware",
    "CORSMiddleware",
    "SecurityHeadersMiddleware",
    "CompressionMiddleware",
    "RequestSizeLimitMiddleware",
    
    # Exceptions
    "APIException",
    "ValidationError",
    "NotFoundError",
    "UnauthorizedError",
    "ForbiddenError",
    "ConflictError",
    "RateLimitError",
    "InternalServerError",
    "ServiceUnavailableError",
    
    # Responses
    "APIResponse",
    "SuccessResponse",
    "ErrorResponse",
    "PaginatedResponse",
    "ListResponse",
    "CreatedResponse",
    "UpdatedResponse",
    "DeletedResponse",
    "HealthCheckResponse",
    "MetricsResponse",
    "ValidationErrorDetail",
    "ValidationErrorResponse"
]